Les styles CSS

Une feuille de style sert à décrire la présentation d'un document html. Tous les navigateurs possèdent des feuilles de style par défaut, mais qui sont basiques.
Il faut déclarer la feuille de style dans le head de la page grâce à la balise <link>. Par exemple :
<link href="styles.css" rel="stylesheet">

Grammaire

    sélecteur{
        propriété : valeur ;
        propriété : valeur ;
        propriété : valeur ;
    }
    

Le sélecteur permet de cibler un élément ou plusieurs. Il y a plusieurs méthodes de sélection pour cela.

Méthode 1 : sélection par type (balise)

 
    h1 {
        color: #fff;
        background: #ff6600;
        font-size: 1.6em;
        font-family: sans-serif;
        padding: 20px;
         width: 260px;
        margin: 0 auto;
        text-align: center;
        text-transform: lowercase;
        border-radius: 5px;
        font-weight: 200;             
    }
    

Par exemple ici le sélecteur <h1> va sélectionner tous les titres de niveau h1 du document.
Vous pouvez de cette manière cibler tous les types de balises utilisées dans la page.

Méthode 2 : sélection par classes

Une classe est une propriété que l'on peut ajouter à n'importe quelle balise, afin d'étiqueter un objet.

<ul>
    <li>Item de liste</li>
    <li>Item de liste</li>
    <li class="tomate">Item de liste</li>
    <li>Item de liste</li>
    <li class="tomate">Item de liste</li>
</ul>
    
.tomate{
    color :tomato;
}
    

Résultat :

Plusieurs objets peuvent avoir la même classe.
On peut attribuer plusieurs classes au même objet.

Plusieurs classes

    <ul>
        <li>Item de liste</li>
        <li>Item de liste</li>
        <li class="tomate legume">Item de liste</li>
        <li>Item de liste</li>
        <li class="tomate">Item de liste</li>
    </ul>
        
    .tomate{
        color :tomato;
    }
    .legume{
        background-color : yellow;
    }
        

Résultat :

Méthode 3 : sélection par ID

Similaire à la classe, mais on utilisera un # au lieu du . pour le sélecteur.
l'ID est un identifiant unique. Il ne peut y en avoir qu'un pour les gouverner tous.
En revanche on peut cumuler un ID et une ou plusieurs classes.

<ul>
    <li>Item de liste</li>
    <li>Item de liste</li>
    <li id="tomate">Item de liste</li>
    <li>Item de liste</li>    
</ul>
            
        #tomate{
            color :tomato;
        }
            

Priorité des sélecteurs

Que se passe-t-il si on attribue un style à une balise H1, et une classe appliquant un style contradictoire ?
Ces conflis se calculent avec un ordre de priorité : le id est plus fort que la classe, qui est plus forte que la balise.
ID > CLASS > BALISE

<ul>
    <li>Item de liste</li>
    <li>Item de liste</li>
    <li id="tomate" class="courgette">Item de liste</li>
    <li>Item de liste</li>                
</ul>
                
li{
    color : black;
}
.courgette{
    color:limegreen;
}
#tomate{
    color :tomato;
}
                

Résultat :

Combinaison de sélecteurs

Il est possible de combiner les sélecteurs entre eux pour être plus précis :
li.courgette{...} va appliquer le style aux objets li qui auront la classe courgette.

Hiérarchie et cascades

On peut cibler les éléments qui sont dans d'autres éléments pour etre encore plus précis :
li .courgette{...} va appliquer le style aux objets ayant la classe courgette qui seront dans un li.

<ul>
    <li>Item de liste</li>
    <li>Item de liste</li>
    <li>Item de liste</li>
    <li>Item de liste</li>                
</ul>

<ul class="tomate">
    <li>Item de liste</li>
    <li>Item de liste</li>
    <li>Item de liste</li>
    <li>Item de liste</li>                
</ul>
        
.tomate li{
    color : tomato;
}

Nous pourrions aussi avoir :

ul.tomate li{
    color : tomato;
}

        

Résultat :

Remarques

Et c'est pas fini !

CSS : Héritage et cascade